var db=require('../db')
var bcrypt=require('bcryptjs')
var jwt=require('jsonwebtoken')
var config=require('../config')
// / 注册新用户
exports.regUser=(req,res) =>{
    // 获取用户信息
    const userinfo = req.body
    //  定义SQL语句，查询用户名是否被占用
    const sqlStr = 'select * from ev_users where username=?'
    db.query(sqlStr, userinfo.username, (err, results) => {
        // 执行SQL语句失败
        if (err) {
            return res.cc(err)
        }

        // 判断用户名是否被占用
        if (results.length > 0) {
            return res.cc('用户名被占用，请更换其他用户名!')
        }

        userinfo.password = bcrypt.hashSync(userinfo.password, 10)
        //  定义插入新用户的SQL的语句
        const sql='insert into ev_users set ?'

        db.query(sql,{username:userinfo.username,password:userinfo.password},(err,results) => {
            // 判断SQL语句是否执行成功
            if(err) {
                return res.cc(err)
            }
            
            if(results.affectedRows !== 1){
            return res.cc('注册用户失败，请稍后再试')
            }
            res.cc('注册成功',0)
        })
    })




}
// 登录
exports.login=(req, res) => {
   const userinfo= req.body      //接受表单数据
   const sql='select * from ev_users where username=?'
   db.query(sql,userinfo.username,(err,results) => {
       if(err){
        return res.cc(err)
       }
       if(results.length !=1) {
        return res.cc('登录失败')
       }
       
       
       // TODO：判断用户输入的登录密码是否和数据库中的密码一致
    
       var compareSync=bcrypt.compareSync(userinfo.password,results[0].password)
       if(!compareSync){
        return res.cc('登录失败！')
       }
       // TODO：登录成功，生成 Token 字符串

       const user={...results[0],password:'',user_pic:''}
       const tokenStr=jwt.sign(user,config.jwtSecretKey,{expiresIn:config.expiresIn})
       console.log(results.id);
       res.send({
        status:0,
        message:'登录成功',
        token:'Bearer '+tokenStr,
        id:results[0].idev_users

    })
   
})
 
   
}
